package ucam.acciones.clientes;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.tiles.Attribute;
import org.apache.tiles.AttributeContext;

import ucam.acciones.Accion;
import ucam.dao.DAOFactory;
import ucam.dao.beans.ClientesDAO;
import ucam.servlets.Singleton;

/**
 * 
 * @author FERNANDO VIVANCOS MORENO 23286145-W
 * fecha realizacion: 28 de mayo de 2010
 * fecha modificacion: 28 de mayo de 2010
 *
 */
public class ChangeCliente extends Accion {
	
	private int tr = 0;
	private String dni = "";
	private String nombre = "";
	private String direccion = "";
	private String email = "";
	private String contacto = "";
	private String telefono = "";
	
	@Override
	protected void doAttributeContext(AttributeContext attributeContext) {
		attributeContext.putAttribute("header",new Attribute("/jsp/tiles/banner.jsp"));
		attributeContext.putAttribute("menu",new Attribute("/jsp/tiles/common_menu.jsp"));
		if((nombre.equals("")) || (dni.equals("")) || (direccion.equals("")) || 
				(email.equals("")) || (contacto.equals("")) || (telefono.equals(""))) {
			attributeContext.putAttribute("body",new Attribute("/jsp/tiles/clientes/formChangeClienteVacio.jsp"));
		} else {
			if(tr != 0){
				attributeContext.putAttribute("body",new Attribute("/jsp/tiles/clientes/changeCliente.jsp"));
			} else {
				attributeContext.putAttribute("body",new Attribute("/jsp/tiles/clientes/errorChangeCliente.jsp"));
			}
		}
		attributeContext.putAttribute("footer",new Attribute("/jsp/tiles/credits.jsp"));
	}

	@Override
	public void execute(HttpServletRequest req, HttpServletResponse resp) {
		this.setDefinition("myapp.homepage");
		
		if((req.getParameter("nombre") != null) || (req.getParameter("dni") != null) || 
				(req.getParameter("direccion") != null) || (req.getParameter("email") != null) || (req.getParameter("contacto") != null) || (req.getParameter("telefono") != null)) {
			nombre = req.getParameter("nombre");
			dni = req.getParameter("dni");
			direccion = req.getParameter("direccion");
			email = req.getParameter("email");
			contacto = req.getParameter("contacto");
			telefono = req.getParameter("telefono");
		} else {
			//redirijo a la pagina de error de campo vacio en el formulario modificar
			renderPage(req, resp);
		}
		
		//Recuperamos la factoria a utilizar. MySQL o Oracle o etc. Depende del motor al que nos conectemos.
		DAOFactory daof = Singleton.getDAOFactory();
		
		//Recuperamos el DAO para "trabajar" con el bean Usuario
		ClientesDAO udao = daof.getClientesDAO();
		
		//llamamos al metodo para que modifique la base de datos
		tr = udao.modificar(dni, nombre, direccion, email, contacto, telefono);
		
		renderPage(req, resp);
	}

}
